The present invention relates to the field of computer processing and more specifically to the real time interpretation and operation of computer code using a combination of unique hardware and software. The predominant current usage of the present inventive real time program language accelerator is in the execution of Java(trademark) code wherein it is desirable to be able to run such code at high execution speed on a variety of different processors.
1. Background Art
It is known in the art to provide interpreters for converting higher level computer languages into machine readable code in near real time. However, such interpreters must necessarily slow down the operation of the program being run at least at some point in during the loading and running of the program. In particular, regarding the Java(trademark) program language, the several available solutions for running Java(trademark) programs, including the xe2x80x9cJava(trademark) Virtual Machinexe2x80x9d are software based programs which require execution in order to accomplish their tasks.
It would be beneficial to have a method and/or means for running Java(trademark) code on any available type of processor. Also, it would be beneficial to have some method and/or means for processing the Java(trademark) code such that it will actually run faster than it otherwise would, or at least that would not slow down the overall process of interpreting and running the Java(trademark) code. However, to the inventor""s knowledge, no system for accomplishing these objectives has existed in the prior art. Indeed, although software solutions such as the Java(trademark) Virtual machine do attempt to optimize the operation of the code, a limitation has been the characteristics of the particular processor and system on which the code is to be run.
2. Disclosure of Invention
Accordingly, it is an object of the present invention to provide a method and means for easily running a non-native program language on virtually any type of processor.
It is still another object of the present invention to provide a method and means for accelerating the operation of Java(trademark) program code.
It is yet another object of the present invention to provide ad method and means for translating and executing Java(trademark) code which is easily implemented in hardware.
It is still another object of the present invention to provide a method and means for translating and executing Java(trademark) code which will not detract from the ability of the computer system to execute non-Java(trademark) code.
Briefly, the preferred embodiment of the present invention is an integrated circuit xe2x80x9cprogram language accelerator corexe2x80x9d which can be embodied as part of a CPU chip, on a separate chip, or even on a separate board. The program language accelerator core has a dedicated hardware stack memory for directly providing the stack memory which is required to be either present or emulated for the execution of Java(trademark) code. A direct memory access (xe2x80x9cDMAxe2x80x9d) controller is also provided for shifting data into and out of the stack memory as overflow and underflow conditions (or other specified conditions) occur. A software portion of the invention translates the Java(trademark) code into a machine native language code, and also optimizes the code to perform unique inventive functions as required, such as writing to a memory address which is predetermined to perform specified functions. In this manner, operations that might otherwise take several clock cycles can be performed in a single (or at least fewer) clock cycles.
An advantage of the present invention is that the speed of execution of Java(trademark) code is greatly increased.
A further advantage of the present invention is that Java(trademark) code can be readily executed on essentially any type of processor.
Yet another advantage of the present invention is that it can be easily and inexpensively implemented such that even affordably priced computers can be optimized for the execution of Java(trademark) code.
Still another advantage of the present invention is that it is not difficult or expensive to adapt to new types of processors such as might become available.
These and other objects and advantages of the present invention will become clear to those skilled in the art in view of the description of the best presently known mode of carrying out the invention and the industrial applicability of the preferred embodiment as described herein and as illustrated in the several figures of the drawing.